package ultweb.domain;

import java.util.ListIterator;
import java.util.Vector;
//import prog.io.*;
 
public class Scontrino {
  Vector prodotti ;  
  private int indice ;  
 // private int sconto;
  private int iva; 
  
  public Scontrino() {
   
    prodotti = new Vector();
    indice=0;
  }
  
  @SuppressWarnings("unchecked")
public void aggiungiProdotto(Prodotto pr) {
    prodotti.add(pr);
    indice++;  
  }
 
  public void rimuoviProdotto(Prodotto pr) {
    prodotti.remove(pr);
    indice--;
  }
  
  public String stampaScontrino() {
    String stringa="";
    //stringa=prodotti.toString()+" "+totaleSomma()+"\n";
    ListIterator iterator=prodotti.listIterator();
    this.formatta();
    while(iterator.hasNext()) {
      stringa+=iterator.next().toString()+"\n";
    }
    stringa=stringa+"Totale";
    int i=this.calcolaMax();
    while(i>9) {
      stringa=stringa+" ";  
      i--;
    }
    stringa=stringa + totaleSomma();
    
    return stringa;
  }
  
  public int totaleSomma() {
    int totale=0;
    for (int i=0 ; i<indice ;i++){
    totale+=((Prodotto)(prodotti.get(i))).prezzoFinale(iva);  
    }
   return totale;
  }
  
  private int calcolaMax() {
    ListIterator iterator=prodotti.listIterator();
    int max=0;
    while (iterator.hasNext()) {
      int u=iterator.next().toString().length();
      if(u>max)max=u;
     }
    return max;
  }
  private void formatta() {
//    int massima=this.clacolaMax();
//    StringTokenizer stk = new StringTokenizer(s,"\n");
//    while(stk.hasMoreTokens()) {
//      if(stk.nextToken().length()<massima) {
//        ;
    int massima=this.calcolaMax();
      ListIterator iterator=prodotti.listIterator();
      while(iterator.hasNext()) {
       Prodotto prd=(Prodotto)iterator.next();
       while(massima>prd.toString().length())
        prd.aggiungiSP();
        //System.out.println(((Prodotto)iterator.next()).toString());
        
      }
   }
 }